CC = g++
NVCC = nvcc

# 用于编译C++代码（CPU）
cpu:
	rm -f ./main
	rm -f ./main.1.*
	rm -f _*
	rm -f gpgpu_inst_*
	$(NVCC) -g -o main ./test-line.cu -arch=sm_75 -lcublas -lcurand
	./main 0

# 用于编译CUDA代码（GPU）
gpu:
	rm -f ./main
	rm -f ./main.1.*
	rm -f _*
	rm -f gpgpu_inst_*
	$(NVCC) -g -o main ./test-line.cu -arch=sm_75 -lcublas -lcurand
	./main 1

# 用于编译WMMA代码（GPU）
wmma:
	rm -f ./main
	rm -f ./main.1.*
	rm -f _*
	rm -f gpgpu_inst_*
	$(NVCC) -g -o main ./test-line.cu -arch=sm_75 -lcublas -lcurand
	./main 2
# 用于编译SIM代码
sim:
	rm -f ./main
	rm -f ./main.1.*
	rm -f _*
	rm -f gpgpu_inst_*
	$(NVCC) --cudart shared -o main ./test-line.cu -arch=sm_75 -lcublas -lcurand
	./main 1

clean:
	rm -f ./main
	rm -f ./main.1.*
	rm -f _*
	rm -f gpgpu_inst_*
	
t:
	$(NVCC) -g -o test ./test-wmma.cu -arch=sm_75 -lcublas -lcurand
	./test